Digital images are generally composed of a 2 dimensional array of pixels. Different image formats may have different resolutions of pixels, for example, 1920×1080, 720×480, 1280×1024, etc. Very often these images need to be converted from one format to another format in order to display the image on a digital display device, which tend to have a fixed output format. Examples of digital display devices with fixed formats may include digital projectors, including digital projection televisions, and digital display monitors (e.g. liquid crystal displays, plasma displays, and the like). Digital images arriving at the digital display device may arrive in any format and must be scaled to match the display's output format. Scaling from a higher resolution format to a lower resolution format is known as downscaling, while scaling from a lower resolution format to a higher resolution format is known as upscaling. Scaling may also be applied to parts of an image, to improve the appearance of an image when it is projected at off-perpendicular angles, or onto an irregular surface, for example by keystoning the image. These types of corrections are known as geometric corrections.
The usual method used to scale an image is to first represent the input image as a series of points (1 pixel=1 point), and generate a curve fit to the points, with all of the light energy in each pixel represented by a corresponding point on the curve. Some algorithms only include the nearest input pixels to generate the curve, while other algorithms include more distant input pixels, to generate a better curve. Once the curve is generated, the output pixels (which make up the output image), are mapped onto the curve, with the value of any given output pixel determined by its location on the curve. However, this technique leads to many artefacts in the output image. For example, if an input pixel falls midway between two output pixels, the total energy transfer from that input pixel to the output will be different than if the input pixel were mapped near an output pixel. This results in some areas of the image where edges are undesirably brighter and others where edges are undesirably dimmer. Further, while the inclusion of more distant input pixels may generate a better curve, input pixels distant from a given output pixel may then have a significant impact on the given output pixel, creating image artefacts such as ringing, overshoot, etc.
A particular problem exists for input images which contain high frequency information (i.e. abrupt transitions from light to dark, or from one colour to another), as the scaling process produces aliasing artefacts in the output image, which appear as undesirable lower frequency images superimposed over the desired image. Many aliasing artefacts are frequency effects proportional to the difference between the input and output pixel rates. While these effects can be seen on still images, they are not always noticed because the viewer may not be able to tell if what they are seeing is a scaling artefact or just part of the original image. However, aliasing artefacts become noticeable in video images, particularly when elements in the input image move slowly across the screen: the artefacts may move at a different speed and in a different direction than the desired elements in the output image, and draw the user's eye to them. For example, they may appear as ripples or flashing in the image. The techniques used to reduce the intensity of these artefacts, usually involve complex filters which require significant electrical resources when implemented in a real time image processing application.
Hence there is a need for a method and apparatus for scaling an image to produce a scaled image by distributing the energy of image pixels between the scaled pixels such that the energy of the image pixels is conserved.